 package uniandes.cupi2.musiteka.servidor.mundo.musiteka1;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;

import uniandes.cupi2.musiteka.servidor.mundo.IIteradorMusiteka;
import uniandes.cupi2.musiteka.servidor.mundo.IUsuario;

public class Usuario implements IUsuario,Serializable, Comparable<IUsuario>{

    // -----------------------------------------------------------------
    // Constantes
    // -----------------------------------------------------------------

	// -----------------------------------------------------------------
    // Atributos
    // -----------------------------------------------------------------
	/**
	 * 
	 */
	private int contador;
	
	/**
	 * 
	 */
	private String contrasenha;
	
	/**
	 * 
	 */
	private Date fechaIngreso;
	
	/**
	 * 
	 */
	private ArrayList generosFavoritos;

	/**
	 * 
	 */
	private String login;

	/**
	 * 
	 */
	private String nombre;
	
	/**
	 * 
	 */
	private String cancionActual;
	
	/**
	 * 
	 */
	private String sexo;
	/**
	 * 
	 */
	private Date fechaRegistro;
	
	// -----------------------------------------------------------------
    // Constructor
    // -----------------------------------------------------------------
	/**
	 * 
	 */
	public Usuario(String nNombre, String nLogin, String nContrasenha, String nSexo, ArrayList nGenerosFavoritos){
		nombre=nNombre;
		login=nLogin;
		contrasenha=nContrasenha;
		sexo=nSexo;
		generosFavoritos=nGenerosFavoritos;
		contador = 1;
		fechaIngreso = new Date();
	}

	// -----------------------------------------------------------------
    // Metodos
    // -----------------------------------------------------------------

	public void aumentarContadorEntradas() {
		// TODO Auto-generated method stub
		contador++;
		
	}

	public void cambiarContrasenha(String nContrasenha) {
		// TODO Auto-generated method stub
		contrasenha=nContrasenha;
		
	}

	public void cambiarGenerosFavoritos(ArrayList nGenerosFavoritos) {
		generosFavoritos = nGenerosFavoritos;
	}

	public void cambiarNombre(String nNombre) {
		// TODO Auto-generated method stub
		nombre=nNombre;
	}

	public void cambiarNombreCancionActual(String nNombreCancionActual) {
		// TODO Auto-generated method stub
		cancionActual=nNombreCancionActual;
	}

	public void cambiarSexo(String nSexo) {
		// TODO Auto-generated method stub
		sexo=nSexo;
	}

	public int darContadorEntradas() {
		// TODO Auto-generated method stub
		return contador;
	}

	public String darContrasenha() {
		// TODO Auto-generated method stub
		return contrasenha;
	}

	public Date darFechaIngreso() {
		// TODO Auto-generated method stub
		return fechaIngreso;
	}

	public ArrayList darGenerosFavoritos() {
		// TODO Auto-generated method stub
		return generosFavoritos;
	}

	public String darLogin() {
		// TODO Auto-generated method stub
		return login;
	}

	public String darNombre() {
		// TODO Auto-generated method stub
		return nombre;
	}

	public String darNombreCancionActual() {
		// TODO Auto-generated method stub
		return cancionActual;
	}

	public String darSexo() {
		// TODO Auto-generated method stub
		return null;
	}
	public String toString(){
		return login;
	}

	
	public Date darFechaRegisto() {
		// TODO Auto-generated method stub
		return fechaRegistro;
	}

	
	public void modificarFechaRagistro(Date fechaRegistroLol) {
		// TODO Auto-generated method stub
		fechaRegistro=fechaRegistroLol;
		
	}

	

	@Override
	public int compareTo(Date o) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public int compareTo(IUsuario o) {
		// TODO Auto-generated method stub
		if(darFechaRegisto().before(o.darFechaRegisto()))
			return 1;
		else 
			return 0;
	}


}
